﻿# -*- coding: utf-8 -*-
def you(er):
    for i in er:
        print(i)
# 读取文件    格式：姓名，游戏次数，最多轮，最少轮，总轮数
try:
    with open('save.txt', encoding='utf-8') as f:       # 打开保存文件
        save = f.readlines()        # 按行形成列表
    ji_lu = {}
    for i in save:      # 遍历内容
        s = i.split()       # 每行形成一个列表
        ji_lu[s[0]] = s[1:]     # 写入字典
    a = 0
    while True:
        a = input('按1查看所有玩家，按2删除玩家，按y开始游戏。\n')
        if a == '1':
            print('现在的玩家有：')
            you(ji_lu)
        elif a == '2':
            you(ji_lu)
            a = input('输入要删除的玩家姓名。\n')
            del ji_lu[a]
            print('现在的玩家剩余：')
            you(ji_lu)
        elif a == 'y':
            break
except:
    print('这是您第一次打开游戏！创建一个新文档。')
    ji_lu = {}       # 新建字典
# 开始游戏
import requests     # 调用网络模块
import random       # 调用随机模块
name = input('请输入游戏名字\n')
shu_jv = ji_lu.get(name)
if shu_jv is None:
    shu_jv = [0, 0, 0, 0]
游戏次数, 最多轮, 最少轮, 总轮数 = int(shu_jv[0]), int(shu_jv[1]), int(shu_jv[2]), int(shu_jv[3])       # 读取数据
if 游戏次数 == 0:
    print('您是第一次玩游戏。')
else:
    print(f'您已经玩了{游戏次数}次，最多的猜了{最多轮}轮，最少的猜了{最少轮}轮，平均%.2f次猜中。' % (总轮数/游戏次数))
条件 = 0
while 条件 != 'q':
    try:        # 如果没有网络就用本地随机数
        条件 = requests.get('https://python666.cn/cls/number/guess/', timeout=1)      # 防止请求时间过长
        if 条件.status_code == 200:
            com = 条件.json()
            print('联网获取成功')
        else:
            com = random.randint(1, 100)
            print('本地获取成功')
    except:
        com = random.randint(1, 100)
        print('本地获取成功')
    游戏次数, 本次轮数 = 游戏次数 + 1, 0          # 游戏次数加1，本次轮数清零
    # print(com)
    print('来猜一个1到100的数字吧。')
    while True:
        a = input('==》请先选择难度：\n=》按1是普通级：就是本局随机数产生后就不会变了，直到下一局开始\n'
                  '=》按2是困难级：就是每猜一轮之后，随机数会再次随机加减1\n')
        if a in ('1', '2'):
            break
        else:
            print('输入错误，重新输入1或2。')
    while 条件 != 'q':
        if a == '2':
            if 1 < com < 100:
                com += random.randrange(-1, 2, 2)      # 加入临时变动，增加可玩性
        # print(com)
        try:
            wan_jia = int(input('请输入一个整数。\n'))
            本次轮数 += 1      # 猜的轮数加1
            if wan_jia < com:
                print('您猜的数字小了。')
            elif wan_jia > com:
                print('您猜的数字大了')
            else:
                print('恭喜您猜对了！')
                break
        except:
            条件 = input('输入错误，请输入整数。按q结束本轮游戏，按任意键继续\n')
    if 条件 != 'q':
        总轮数 += 本次轮数
    if 游戏次数 == 1:
        最多轮 = 最少轮 = 本次轮数
    else:
        if 最多轮 < 本次轮数:
            最多轮 = 本次轮数
        if 最少轮 > 本次轮数:
            最少轮 = 本次轮数
    条件 = input(f'您本次猜了{本次轮数}轮，平均{总轮数/游戏次数}轮猜中。\n按任意键继续游戏，按q退出游戏。\n')
ji_lu[name] = [str(游戏次数), str(最多轮), str(最少轮), str(总轮数)]     # 将数据写入字典
# 保存文件
m = ''
for i in ji_lu:
    # print('=-=-', i)        # 遍历键
    z = i + ' ' + ' '.join(ji_lu[i]) + '\n'     # 加上键对应的值（键、空格、值、换行）‘’.join 把字符串拼接成一个字符串
    # print(z)
    m += z      # 把每次的数据加上
    # print('==', m)
# print('---', m)
with open('save.txt', 'w', encoding='utf8') as f:
    f.write(m)